package bookmanage;

import bookmanage.Opreation.IOperation;

import java.util.Arrays;

abstract public class User {
    private int userId;
    private String username;
    private String password;
    // 此处针对 isAdmin 不是使用boolean来区分 而是使用了两个不同的子类
    // 原因是管理员和普通用户支持的方法是不一样的

    // 包含了一个数组，数组里面就是该用户支持哪些方法
    // 针对普通用户和管理员进行不同的操作
     protected IOperation[] operations;
    // 普通用户和管理员看到的菜单也不相同
    abstract public int menu();
    public void doOperation(int choice){
        operations[choice].work();
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getName() {
        return username;
    }

    public void setName(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
